#pragma once

#include "iostream"
#include "vector"
#include "algorithm"

using namespace std;
/*HJJ QQ479287006
 *输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有奇数在数组的前半部分，所有偶数在数组的后半部分。

 

示例：

输入：nums = [1,2,3,4]
输出：[1,3,2,4]
注：[3,1,2,4] 也是正确的答案之一。

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * */

//17.8的通过
vector<int> exchange(vector<int> &nums) {

    int low = 0;
    int high = nums.size() - 1;

    while (low < high) {
        //如果低位是奇数
        while (nums[low] % 2 != 0 && low < high)
            low++;

        //高位如果是偶数
        while (nums[high] % 2 == 0 && low < high)
            high--;

        swap(nums[low], nums[high]);


    }

    return nums;

}